The present invention relates to computer networks and, more particularly, to a method for establishing and maintaining virtual chains in a distributed network during the session initiation process.
Computer networks for processing and transmitting data are typically hierarchical by nature, with the network operating system owning all resources in the network and being responsible for initiating sessions, determining routes, and terminating sessions. In contrast to the master-slave relationship characteristic of a hierarchical network, the nodes in a network utilizing a peer-to-peer architecture are capable of selecting routes and initiating sessions without intervention from a central host. The peer-to-peer network architecture is particularly suitable for dynamic networks in which the addition and deletion of resources and end users occurs very frequently. This architecture relies on a combination of dynamically maintained topology databases and automatic path computation to eliminate the need for manual definition of the network physical configuration and to provide for automatic adaptation to configuration changes. U.S. Pat. No. 4,827,411 issued to Arrowood et al discloses a method for maintaining a common network topology database at different nodes in a communications network.
A communications network can be defined generally as a collection of network nodes and end nodes interconnected through communication links or transmission groups. A network node can be characterized as a data processing system that provides certain functions within the network, such as routing of messages between itself and its adjacent or neighboring nodes, selection of routes for messages to be transmitted between a network node and an end node and the furnishing of directory services to connected end nodes. An end node is a node that does not provide any network services to other nodes. End nodes are exemplified by devices such as display terminals, intelligent workstations, printers and the like which do not provide routing or route selection or directory services to other nodes and networks. The links between nodes may be permanent communication links such as conventional cable connections or links that are enabled only when needed, such as dial-up telephone connections. Collectively, the network nodes, the end nodes and the transmission groups between the nodes are referred to as network resources. The physical configuration and characteristics of the various nodes and links in a network are said to be the topology of the network.
An end user's interface to the network is referred to as a logical unit. A logical unit is a device or program that an end user uses to access the network. Two end users communicate over a logical connection called a session. Multiple sessions can exist between logical units. The logical unit that establishes the session is referred to as the primary logical unit (PLU); the other logical unit is referred to as the secondary logical unit (SLU). Each end node and network node typically supports one or more logical units. In addition, each end node and network node contains a control point (CP) that provides control functions such as session initiation and termination. Control points communicate with each other via CP-CP sessions. The domain of each network node consists of the logical units, physical units, and control points under its control. The basic session establishment function in a peer-to-peer network architecture is primary logical unit initiated without queueing, although secondary logical unit and third party initiated sessions and various forms of queueing can also be supported on both end nodes and network nodes.
A network node provides directory services to the logical units located on it and to the logical units on the end nodes that it serves. The network node directory contains a mapping of logical unit names or other resource names to the control point (CP) name of the node at which that logical unit or resource is located. The network node's directory functions include learning the resources in its end node either by definition or registration by the end nodes, maintaining a cache of directory entries that it has learned, sending a directed search to verify the existence and location of a resource, and initiating a broadcast search across the network if there is no information on where the resource is located. To initiate a session with a logical unit in the domain of another network node, a logical unit must first send a session initiation request to the control point in its serving network node requesting that a particular session be established. The control point in the serving network node forwards the cross-domain session initiation request along with a directed search message to the destination network node believed to contain the target logical unit.
To accommodate the capability of dynamically locating resources in a peer-to-peer network architecture, the directory services component in each network node has a number of control blocks for storage dedicated to the receipt and processing of directory search requests. Each intermediate node between the originating network node server and the destination network node server must also use control blocks for forwarding messages and receiving replies. If a large number of search messages and replies are active simultaneously, one or more intermediate nodes can be hampered in the ability to perform other processing functions due to an insufficient amount of available storage area. In transmitting a directed search request from an originating network node to a destination network node, a "locate chain" is established along the path taken with resources in the form of control blocks dedicated to the chain at each intermediate node along the path until session initiation is complete. There exists a need for a method to reduce the amount of storage dedicated to intermediate nodes during session initiation.